<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      display: flex;
      margin: 100px auto;
      width: 500px;
      height: 500px;
      border: 1px solid #000;
      /* 主轴方向 默认row | row | row-reverse | column | column-reverse */
      flex-direction: row;
      /* 是否换行不换行会压缩 wrap | nowrap */
      flex-wrap: nowrap;
      /* 主轴对齐方式 flex-start| flex-end | center | space-around | space-between */
      justify-content: flex-start;
      /* 垂直轴方向 flex-start | flex-end | center | baseline | stretch  */
      align-items: flex-start;
      /* 多条主轴对齐方式 flex-start| flex-end | center | space-around | space-between  */
      align-content: flex-start;
    }

    /* flex子元素属性 */
    /* 1.order 权重 权重越小越靠前排列 */
    /* 2.flex-grow 放大比例 */

    /* 计算方式 1.计算剩余空间 500-300=200 */
    /*          2.剩余空间除以一共份数 200 / 2 = 100    */
    /*          3.加上原来宽度 100+100=200 */

    /* 3.flex-shrink 缩小 用剩余空间除以份数 减去原来宽度 */

    /* 4.flex-base 放大 缩小的基准值 几乎不动 */
    /* 5.flex: 0 1 auto 默认值（放大 缩小 基准值） */
    /* 6.align-self  定义单个项目的对齐方式 flex-start| flex-end | center | space-around | space-between*/

    .mid,
    .left,
    .right {
      width: 100px;
      /* height: 100px; */
      color: #fff;
      text-align: center;
      line-height: 100px;
      /* flex: 0 1 auto;  */
      /* flex: auto;  (1 1 auto)  */
      /* flex: 0; (0 0 0) */
      /* flex: 1; (1 1 auto) */
      /* flex: none; (0 0 auto) */

      /* 有宽度 1 有均分 */
      /* 无宽度  1 auto 均分 */
    }
    .left {
      order: 0;
      /* flex-grow: 1; */
      /* flex-shrink: 0; */
      background-color: blue;
      /* align-self: stretch; */
    }
    .mid {
      order: 1;
      /* flex-grow: 1; */
      /* flex-shrink: 1; */
      background-color: red;
    }
    .right {
      order: 2;
      /* flex-shrink: 1; */
      background-color: orange;
      /* align-self: flex-end; */
      flex: 1;

    }
  </style>
</head>
<body>
  <div class="box">
    <div class="left blue">1</div>
    <div class="mid red">2</div>
    <div class="right orange">3</div>
    <!-- <div class="left blue">1</div>
    <div class="mid red">2</div>
    <div class="right orange">3</div>
    <div class="left blue">1</div>
    <div class="mid red">2</div>
    <div class="right orange">3</div> -->
  </div>
</body>
</html>